/*
 * @Author: fuhongliang-TSJ hongliang.fu@4d-bios.com
 * @Date: 2025-09-23 10:43:33
 * @LastEditTime: 2025-09-23 10:47:21
 * @LastEditors: fuhongliang-TSJ hongliang.fu@4d-bios.com
 * @Description: 
 * @FilePath: \lc_-esp32_-s3\main\app\common.c
 * 立创实战派ESP32-S3开发板
 * Copyright (c) 2025 by 4D Bios, All Rights Reserved. 
 */

#include <stdio.h>
#include <stdint.h>
#include "esp_mac.h"
#include "esp_log.h"
#include "common.h"

static const char *TAG = "COMMMOM";

/**
 * @brief 将6字节的MAC地址数组转换为冒号分隔的字符串
 * @param mac_array 输入的6字节MAC地址数组
 * @param output_str 输出缓冲区，至少需要18字节（12字符 + 5冒号 + 空字符）
 */
static void mac_to_string(const uint8_t *mac_array, char *output_str) {
    sprintf(output_str, "%02X:%02X:%02X:%02X:%02X:%02X",
            mac_array[0], mac_array[1], mac_array[2],
            mac_array[3], mac_array[4], mac_array[5]);
}

void get_mac_string(char *output_str)
{
    esp_err_t err;
    uint8_t mac_addr[6]; // 存储读取到的MAC地址
    char mac_str[18];    // 存储格式化后的字符串 (17字符 + 空字符)

    // 1. 读取 Wi-Fi STA 模式的 MAC 地址
    err = esp_read_mac(mac_addr, ESP_MAC_WIFI_STA);
    if (err == ESP_OK) {
        mac_to_string(mac_addr, output_str);
        ESP_LOGI(TAG, "Wi-Fi STA MAC: %s", output_str);
    } else {
        ESP_LOGE(TAG, "Failed to read Wi-Fi STA MAC: %s", esp_err_to_name(err));
    }
}